package com.deliccio.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.deliccio.dao.ClienteDAO;
import com.deliccio.dao.MesaDAO;
import com.deliccio.dao.PedidosDAO;
import com.deliccio.dao.SucursalesDAO;
import com.deliccio.dao.UsuarioDAO;
import com.deliccio.dao.UsuarioPorSucursalDAO;
import com.deliccio.entitys.Pedidos;
import com.deliccio.entitys.Sucursales;
import com.deliccio.entitys.Usuario;
import com.deliccio.entitys.UsuarioPorSucursal;
import com.deliccio.service.CocicnaService;
import com.deliccio.util.Constantes;

@Service("CocicnaService")
public class CocicnaServiceImpl implements CocicnaService{

	
	@Autowired
	private PedidosDAO pedidosDAO;
	@Autowired
	private UsuarioDAO usuarioDAO;
	@Autowired
	private UsuarioPorSucursalDAO usuarioPorSucursalDAO;
	@Autowired
	private SucursalesDAO sucursalesDAO;
	@Autowired
	private  MesaDAO mesaDAO;
	@Autowired
	private  ClienteDAO clienteDAO;
	
	@Override
	public List<Pedidos> obtenerPedidosPorCocina(Usuario usuario){		
		usuario = usuarioDAO.get(usuario.getId());
		int usuarioPorSucursal= usuarioPorSucursalDAO.getSucursal(usuario);
		if(usuarioPorSucursal>0){
			Sucursales sucursales= sucursalesDAO.get(usuarioPorSucursal);		
			System.out.println(" sucursales:: "+sucursales);
			List<Pedidos> lstPedidos = pedidosDAO.obtenerPeddiosPorSucursal(sucursales,Constantes.PROCESO,Constantes.EN_ESPERA,Constantes.CANCELADO);
			for(Pedidos pedidos : lstPedidos){
				pedidos.setLstMesas(mesaDAO.obtenerMesasPorPedido(pedidos));
				pedidos.setCliente(clienteDAO.obtenerClientePorPedido(pedidos));
				System.out.println(pedidos.getSucursales());
				if(pedidos.getSucursales()==null){
					pedidos.setSucursales(new Sucursales(0,""));					
				}
				System.out.println(pedidos.getLstMesas());
				System.out.println(pedidos.getLstMesas().size());
				if(pedidos.getLstMesas()!=null){
					if(pedidos.getLstMesas().size()>0){
						pedidos.setDelivery(false);
					}else
						pedidos.setDelivery(true);
				}else{
					pedidos.setDelivery(true);
				}					
			}		
			return lstPedidos;			
		}
		return null;
	
	}

	
	
}
